Rich Internet Applications (RIA) are typically programs running on a server but act as traditional local applications. For example, a document processor may run on a server but be controlled by a user of a client device connected to the server. The client, instead of having to store every document, serves as a courier between the server and user. As today's electronic devices become more connected, RIAs are assuming a more prevalent role in data processing and application execution.
RIAs typically require a constant connection to a server. For example, if a document processor is being controlled by a user from his desktop, a constant connection (e.g., via the Internet) is kept open with the server. The connection is kept open in order for any changes or actions made by the user are forwarded to the server. One problem is that devices may not always be connected to the server when the user wishes to execute a program. In one example, a user may wish to run the document processor when no wireless internet connection exists for his device. As a result, the user would have to wait until a connection was established at a later point in order to run the program. Also, an RIA is shut down before a save if the connection is lost between the server and client. Hence, the current state of any RIA information is lost. Another problem is that information must be continually passed between the client and the server during execution of an RIA. As a result, transceiver bandwidth may be consumed for execution of the RIA instead of other applications requiring communication with other devices. Another problem is that technologies today limit the number of clients that may simultaneously connect to a server in executing an RIA. The server may only have, for example, 64 sockets to allow 64 clients at one time to execute the RIA. Another problem is that synchronization must occur between a client and the server, again requiring a connection between the client and the server.